// Copyright Up and Running
$(document).ready(function() {
var id = null;
if ($('#recording-id').val() > 0 && $('#is-recorded').val() == 1) {
$('#audio-wrapper').show().addClass('audio-assignment').addClass('elements-container');
$('#audio-controls .controls').show();
$('#btn-audio-prompt').hide();
id = $('#recording-id').val();
}
Twilio.Device.setup(token, {
"debug": false,
closeProtection: true
});
$("#btn-record").click(function() {
$('#status').html('Your browser is asking for permission - Please allow Verbalize to access your microphone.');
$('.button-wrapper').hide();
Twilio.Device.connect();
$(document).trigger('recording.start');
if (id) {
$.ajax({
type: "POST",
url: "/ajax/recording/cancel",
data: {'id' : id},
dataType: "json",
cache: false,
success: function(response){
}
});
}
});
$("#btn-hangup").click(function() {
$('#status').html('Loading...');
$(document).trigger('timer.pause');
setTimeout(function () {
connection.sendDigits("#");
}, 1800);
// Hide button and timer
$('.button-wrapper').hide();
$('.record-timer').hide();
});
$("#btn-ok").click(function() {
$.ajax({
type: "POST",
url: "/ajax/recording/save",
data: {'id' : id},
dataType: "json",
cache: false,
success: function(response){
if (response.status) {
var audioRecord = $('#record-audio .audio-record');
$('#recording-id').val(id);
// textEdior.insertContent('
{AUDIO:' + id + '}');
$(document).trigger('recording.success');
$('#audio-wrapper').show()
.addClass('audio-assignment')
.empty()
.append(audioRecord.clone())
.addClass('elements-container');
$('#audio-controls .controls').show();
$('#btn-audio-prompt').hide();
}
}
});
Twilio.Device.disconnectAll();
});
$("#btn-cancel").click(function() {
Twilio.Device.disconnectAll();
});
Twilio.Device.ready(function (device) {
device.sounds.outgoing(false);
$('#status').text('Ready to start recording');
});
Twilio.Device.offline(function (device) {
$('#status').text('Offline');
});
Twilio.Device.error(function (error) {
$('#status').text(error.message);
});
// Start recording ...
Twilio.Device.connect(function (conn) {
connection = conn;
$('#status').text("Recording...");
$('#status').css('color', 'red');
$('.button-wrapper').show();
toggleCallStatus();
setTimeout(function () {
$('.record-timer').css('display', 'block');
$(document).trigger('timer.start');
}, 1000);
});
// Stop recording - Send data to API
Twilio.Device.disconnect(function (conn) {
$('#status').html('Recording ended');
$('#status').css('color', 'black');
$.ajax({
type: "POST",
url: "/ajax/recording/get-recording-by-uid",
data: {'uid' : uid},
dataType: "json",
cache: false,
success: function(response){
if (response.status) {
var audioResponse = '';
$(document).trigger('recording.stop');
id = response.data.id;
$('#status').html(audioResponse);
$('#btn-record span').html('Redo');
} else {
$('#status').html('Recording failed. Please try again!');
$('.record-timer').css('display', 'block');
}
$('.button-wrapper').show();
$(document).trigger('timer.stop');
}
});
toggleCallStatus();
});
function toggleCallStatus(){
$('#btn-record').toggle();
$('#btn-hangup').toggle();
}
$('.js-cancel-audio').on('click', function () {
$.ajax({
type: "POST",
url: "/ajax/recording/cancel",
data: {'id' : $('#recording-id').val()},
dataType: "json",
cache: false,
success: function(response){
}
});
$('.audio-record').remove();
$('#audio-wrapper').hide()
.removeClass('elements-container');
$('#btn-audio-prompt').show();
$('#audio-controls .controls').hide();
$('#recording-id').val('');
});
});